package pl.elka.pobr.ppr.utils;

import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter;

public class FilePickingUtils {

    public static File openFileChooser(JFrame ownerFrame) {
        String defaultFolder = AppConstants.IMAGES_FOLDER_PATH;
        JFileChooser fc = new JFileChooser(new File(defaultFolder));
        fc.setAcceptAllFileFilterUsed(false);
        fc.setMultiSelectionEnabled(true);
        fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
        fc.setFileFilter(new FileFilter() {

            @Override
            public boolean accept(File f) {
                if (f.isDirectory()) {
                    return true;
                }
                String extension = getExtension(f);
                if (extension != null) {
                    if (extension.equals("png")) {
                        return true;
                    } else {
                        return false;
                    }
                }
                return false;
            }

            public String getExtension(File f) {
                String ext = null;
                String s = f.getName();
                int i = s.lastIndexOf('.');
                if (i > 0 && i < s.length() - 1) {
                    ext = s.substring(i + 1).toLowerCase();
                }
                return ext;
            }

            @Override
            public String getDescription() {
                return "PNG";
            }
        });
        // Show open dialog; this method does not return until the dialog is closed
        fc.showOpenDialog(ownerFrame);
        return fc.getSelectedFile();
    }
}
